package cliente.mediador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import report.ViewReport;

import cliente.ClienteConection;
import cliente.Funciones;
import cliente.gui.GUILiquidar;

import comun.dto.*;
import comun.iControl.*;

public class MediadorLiquidar  implements ActionListener{  
	private GUILiquidar guiLiquidar=null;
	public IControlEmpleado controlLiquidar;
	private Funciones fun;
	ViewReport ve = new ViewReport();

	//Constructor
	public MediadorLiquidar() throws Exception {
		ClienteConection empleadoConexion = new ClienteConection();
		try{
			empleadoConexion.iniciar(); 
		}catch(Exception ex){
			ex.printStackTrace();
		}
		this.controlLiquidar=empleadoConexion.getIControlEmpleado();
		guiLiquidar= new GUILiquidar();
		fun=new Funciones();
		guiLiquidar.setActionListeners(this);
		show();
	}


	//metodo que muestra la interface
	private void show() { 
		guiLiquidar.getCantDiasVac().setEditable(false);
		guiLiquidar.getRemunerativo().setEnabled(false);
		guiLiquidar.show();
	}
	//metodo que escucha la solicitud del usuario y ejecuta dicha solicitud
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		Object source = e.getSource();
		try{
			if (source==guiLiquidar.getVacaciones()){
				int eleccion=guiLiquidar.getVacaciones().getSelectedIndex();
				if(eleccion==0){
					guiLiquidar.getRemunerativo().enable(false);
					guiLiquidar.getCantDiasVac().setEditable(false);
					guiLiquidar.getCantDiasVac().setText("");
				}else if(eleccion==1){
					guiLiquidar.getRemunerativo().enable(true);
					guiLiquidar.getCantDiasVac().setEditable(true);
				}
			}else
			if (source==guiLiquidar.getBuscarEmpleados()){
				guiLiquidar.setTablaEmpleados();
				String cuit=guiLiquidar.getCuit().getText();
				if ((cuit.length()==0)||(fun.cuitValido(cuit)==false)){
					JOptionPane.showMessageDialog(new JFrame(),"El campo cuit es vacio o no es correcto","CAMPO INCOMPLETO",JOptionPane.ERROR_MESSAGE); 
				} 
				else if (!controlLiquidar.existeEmpresa(cuit)){
					JOptionPane.showMessageDialog(new JFrame(),"Cuit no existente en la base de datos puede dar de alta si desea","CAMPO INCOMPLETO",JOptionPane.ERROR_MESSAGE); 
				}
				else{			
					Vector<EmpleadoDTO> empleado=controlLiquidar.getEmpleados(cuit);
					guiLiquidar.setTablaEmpleados(empleado);
				}
			}else if (source==guiLiquidar.getLiquidar()){
				int fila=guiLiquidar.getTablaEmpledos().getSelectedRow();
				if (fila==-1){
					JOptionPane.showMessageDialog(null, "Debe seleccionar una Empleado a Liquidar");
				}else{
					String cuil=(String) guiLiquidar.getTablaEmpledos().getValueAt(fila, 2);		 
					String cuit=guiLiquidar.getCuit().getText();
					int anio=guiLiquidar.getAnio().getYear();
					String mes=fun.getMes(guiLiquidar.getMes().getMonth());
					MediadorReciboDeSueldo map = new MediadorReciboDeSueldo(cuil,cuit,anio,mes);
					
					
				}

			}else if (source==guiLiquidar.getCancelar()){
				guiLiquidar.dispose();
			}
		}catch(Exception p){

		}
	}

}
